Intelligent automated assistants (or virtual assistants) provide an intuitive interface between users and electronic devices. These assistants can allow users to interact with devices or systems using natural language in spoken and/or text forms. For example, a user can access the services of an electronic device by providing a spoken user input in natural language form to a virtual assistant associated with the electronic device. The virtual assistant can perform natural language processing on the spoken user input to infer the user's intent and operationalize the user's intent into tasks. The tasks can then be performed by executing one or more functions of the electronic device, and a relevant output can be returned to the user in natural language form.
Some virtual assistants can be implemented using active ontologies to simplify the software engineering and data maintenance of the virtual assistant systems. Active ontologies can represent an integration of data modeling and execution environments for assistants and can provide a framework to tie together the various sources of models and data (e.g., domain concepts, task flows, vocabulary, language pattern recognizers, dialog context, user personal information, mappings from domain and task requests to external services, and the like). Implementing a virtual assistant in this way allows the virtual assistant to quickly and accurately respond to a user input in natural language form. However, current active ontology architectures can make it difficult to add new knowledge domains representing a subject, genre, area of interest, group of similar requests, or the like, to the active ontology.